<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.8/dist/vue.js" type="text/javascript"></script>
    <style>
        .basise{
            width: 300px;
            height: 150px;
            border: 2px solid red;
            box-sizing: border-box;
        }
        .happy{
            background-color: aqua;
        }
        .sad{
            background-color: green;
        }
        .normal{
            background-color: antiquewhite;
        }
        .su1{
            background-color: lightyellow;
        }
        .su2{
            font-size: 20px;
            text-shadow: 2px;
            padding-left: 10px;
        }
        .su3{
            border-radius: 15px;
        }
            
    </style>
</head>
<body>
    <!-- 
        绑定样式:
            1.class样式
                写法:class="xxx"xxX可以是字符串、对象、数组。
                字符串写法适用于:类名不确定，要动态获取。
                对象写法适用于:要绑定多个样式,个数不确定，名字也不确定。
                数组写法适用于:要绑定多个样式，个数确定，名字也确定，但不确定用不用
            2. style样式
                :style="{fontSize: xxx}"其中xxx是动态值。:style="[a,b]"其中a、b是样式对象。

     -->
    <div id="box">
        <!-- 绑定class样式--字符串写法，适用于:样式的类名不确定，需要动态指定 -->
        <div class="basise" :class="mood" @click="changeMood">苏凉</div><br>
        <!-- 绑定class样式--数组写法，适用于:要绑定的样式个数不确定、名字也不确定 -->
        <div class="basise" :class="classArr">苏凉</div><br>
        <!-- 绑定class样式--对象写法，适用于:要绑定的样式个数确定、名字也确定，但要动态决定用不用 -->
        <div class="basise" :class="classObj" @click="changeClass">苏凉</div><br>

        <!-- 绑定style样式--对象写法 -->
        <div class="basise" :style="styleObj">苏凉</div><br>
        <!-- 绑定style样式--数组写法 -->
        <div class="basise" :style="styleArr">苏凉</div><br>

    </div>

    <script>
        Vue.config.productionTip = false;  //阻止vue在启动时生成生产提示
        //创建实例
        let vm = new Vue({
            el:"#box",
            data:{
                mood:'normal',
                classArr:['su1','su2','su3'],
                classObj:{
                    su1:false,
                    su2:true
                },
                styleObj:{
                    fontSize:"40px",
                    backgroundColor:"lightgray"
                },
                styleArr:[
                    {
                        fontSize:"40px",
                        color:'white'
                    },
                    {
                        backgroundColor:"black"
                    }
                ]
            },
            methods: {
              changeMood(){
                let arr = ['sad','happy','normal'];
                let index = parseInt(Math.random()*3);
                this.mood = arr[index]
              },
              changeClass(){
                this.classObj.su1 = !this.classObj.su1;
                this.classObj.su2 = !this.classObj.su2;
              }
            }
        })
       
    </script>
</body>
</html>